<script>
  const arr =  [
{ 'id': '29', 'pid': '',    'name': '总裁办' },
{ 'id': '2c', 'pid': '',    'name': '财务部' },
{ 'id': '2d', 'pid': '2c', 'name': '财务核算部'},
{ 'id': '2f', 'pid': '2c', 'name': '薪资管理部'},
{ 'id': 'd2', 'pid': '',     'name': '技术部'},
{ 'id': 'd3', 'pid': 'd2', 'name': 'Java研发部'},
{ 'id': '2g', 'pid': 'd2', 'name': 'Python研发部'},
]




//封装函数
export function transDtaToTreeData(arr){
//具体实现的步骤
//1.遍历数组中所有的部门对象,给每一个部门对象添加一个children属性,值为空数组
const mapObj={} //映射对象,方便根据数据的关系朝数据
arr.forEach(item=>{
  // console.log(item,'item');
  if(!item.children){
    item.children=[]
  }
  //2.往映射对象添加数据 取出每一个item对象的id作为映射对象的key,值就是当前的item对象
  mapObj[item.id]=item
})
// console.log(mapObj,'mapOnj');

//3.具体实现树形数据的转化
const new_arr=[]//保存树形的数据
arr.forEach(item=>{
  //根据用户的父子级关系 找到父级的数据
  const parent=mapObj[item.pid]

  if(parent){
    //parent如果有值就说明item是一个二级数据或者三级数据
    parent.children.push(item)
  }else{
    //parent如果是undefined 就说明没有父级是一极数据
    new_arr.push(item)
  }
})
return new_arr
// console.log(new_arr,'new_arr');

}
transDtaToTreeData(arr)
</script>